﻿using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;

namespace RattlerRace
{
    public class BodyPart : Block
    {
        private int _smer;

        public BodyPart()
        {
            _smer = 0;
            this.State = 2;
            this.P = new System.Drawing.Point();
        }

        public BodyPart(int s, Point P)
        {
            _smer = s;
            this.State = 2;
            this.P = P;
        }

        public int Smer
        {
            get { return _smer; }
            set { _smer = value; }
        }

        /// <summary>
        /// Metoda vrne vrsto oziroma obliko zavoja. Obstajajo štirje tipi zavoja in sicer:
        ///     -0, trenutna smer: 0  smer predhodne: 1 ALI  trenutna smer: 3  smer predhodne: 2 , pozicija zaobljenega dela: zgoraj levo
        ///     -1, trenutna smer:  0 smer predhodne: 3 ALI  trenutna smer: 1  smer predhodne: 2 , pozicija zaobljenega dela: zgoraj desno
        ///     -2, trenutna smer: 2  smer predhodne: 3 ALI  trenutna smer: 1  smer predhodne: 0 , pozicija zaobljenega dela: spodaj desno
        ///     -3, trenutna smer: 2  smer predhodne: 1 ALI  trenutna smer: 3  smer predhodne: 0 , pozicija zaobljenega dela: spodaj levo
        /// V primeru da sta smeri trenutne in naslednje kocke enaki, pomeni da zavoja ni, metoda pa vrne število 10
        /// </summary>
        /// <param name="smerTrenutne"></param>
        /// <param name="smerNaslednje"></param>
        /// <returns>Vrne tip zavoja predstavljen z celim številom med 0 in 3</returns>
        public int vrniZavoj(int smerNaslednje) //smer trenutne je del razreda? WHY would you need it again?
        {
            int zavoj = 10;

            if (_smer != smerNaslednje)
            {
                if ((_smer == 0 && smerNaslednje == 1) || (_smer == 3 && smerNaslednje == 2))
                {
                    zavoj = 0;
                }
                if ((_smer == 0 && smerNaslednje == 3) || (_smer == 1 && smerNaslednje == 2))
                {
                    zavoj = 1;
                }
                if ((_smer == 2 && smerNaslednje == 3) || (_smer == 1 && smerNaslednje == 0))
                {
                    zavoj = 2;
                }
                if ((_smer == 2 && smerNaslednje == 1) || (_smer == 3 && smerNaslednje == 0))
                {
                    zavoj = 3;
                }
            }

            return zavoj;
        }
    }
}
